<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>default initialization - cppreference.com</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">


<link rel="shortcut icon" href="../../../favicon.ico">



<link rel="stylesheet" href="../../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-css:7:472787eddcf4605d11de8c7ef047234f */</style>

<script src="../../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/language/default_initialization","wgTitle":"cpp/language/default initialization","wgCurRevisionId":78061,"wgArticleId":8863,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"cpp/language/default_initialization","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-ColiruCompiler":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-js:7:ca03345b1e2c4d90a25d968753a73b92 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<style type="text/css">/*<![CDATA[*/
.source-cpp {line-height: normal;}
.source-cpp li, .source-cpp pre {
	line-height: normal; border: 0px none white;
}
/**
 * GeSHi Dynamically Generated Stylesheet
 * --------------------------------------
 * Dynamically generated stylesheet for cpp
 * CSS class: source-cpp, CSS id: 
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
 * (http://qbnz.com/highlighter/ and http://geshi.org/)
 * --------------------------------------
 */
.cpp.source-cpp .de1, .cpp.source-cpp .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.cpp.source-cpp  {font-family:monospace;}
.cpp.source-cpp .imp {font-weight: bold; color: red;}
.cpp.source-cpp li, .cpp.source-cpp .li1 {font-weight: normal; vertical-align:top;}
.cpp.source-cpp .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.cpp.source-cpp .li2 {font-weight: bold; vertical-align:top;}
.cpp.source-cpp .kw1 {color: #0000dd;}
.cpp.source-cpp .kw2 {color: #0000ff;}
.cpp.source-cpp .kw3 {color: #0000dd;}
.cpp.source-cpp .kw4 {color: #0000ff;}
.cpp.source-cpp .co1 {color: #909090;}
.cpp.source-cpp .co2 {color: #339900;}
.cpp.source-cpp .coMULTI {color: #ff0000; font-style: italic;}
.cpp.source-cpp .es0 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es1 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es2 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es3 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es4 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es5 {color: #008000; font-weight: bold;}
.cpp.source-cpp .br0 {color: #008000;}
.cpp.source-cpp .sy0 {color: #008000;}
.cpp.source-cpp .sy1 {color: #000080;}
.cpp.source-cpp .sy2 {color: #000040;}
.cpp.source-cpp .sy3 {color: #000040;}
.cpp.source-cpp .sy4 {color: #008080;}
.cpp.source-cpp .st0 {color: #008000;}
.cpp.source-cpp .nu0 {color: #000080;}
.cpp.source-cpp .nu6 {color: #000080;}
.cpp.source-cpp .nu8 {color: #000080;}
.cpp.source-cpp .nu12 {color: #000080;}
.cpp.source-cpp .nu16 {color:#000080;}
.cpp.source-cpp .nu17 {color:#000080;}
.cpp.source-cpp .nu18 {color:#000080;}
.cpp.source-cpp .nu19 {color:#000080;}
.cpp.source-cpp .ln-xtra, .cpp.source-cpp li.ln-xtra, .cpp.source-cpp div.ln-xtra {background-color: #ffc;}
.cpp.source-cpp span.xtra { display:block; }

/*]]>*/
</style>
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]-->
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_language_default_initialization skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        
        <!-- /header -->
        <!-- content -->
        <div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
                <h1 id="firstHeading" class="firstHeading">default initialization</h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">From cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../../cpp.html" title="cpp">cpp</a>‎ | <a href="../language.1.html" title="cpp/language">language</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr">
<div class="t-navbar" style="">
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<a href="../../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div>
<div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em;">
<tr class="t-nv"><td colspan="5"> <a href="../language.1.html" title="cpp/language"> Language</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../header.html" title="cpp/header"> Standard library headers</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../concept.html" title="cpp/concept"> Concepts</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../utility.html" title="cpp/utility"> Utilities library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../string.html" title="cpp/string"> Strings library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../container.html" title="cpp/container"> Containers library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../algorithm.html" title="cpp/algorithm"> Algorithms library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../iterator.html" title="cpp/iterator"> Iterators library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../numeric.html" title="cpp/numeric"> Numerics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../io.html" title="cpp/io"> Input/output library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../locale.html" title="cpp/locale"> Localizations library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../regex.html" title="cpp/regex"> Regular expressions library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../atomic.html" title="cpp/atomic"> Atomic operations library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../thread.html" title="cpp/thread"> Thread support library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../experimental.html" title="cpp/experimental"> Technical Specifications</a> </td></tr>
</table></div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head"><a href="../language.1.html" title="cpp/language"> C++ language</a></div>
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<a href="initialization.html" title="cpp/language/initialization"> Initialization</a><div class="t-navbar-menu"><div>
<div style="display:inline-block">
<div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv-h2"><td colspan="5"> <a href="initialization.html" title="cpp/language/initialization"> Initializer </a> </td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> Default initialization</strong>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="value_initialization.html" title="cpp/language/value initialization"> Value initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="direct_initialization.html" title="cpp/language/direct initialization"> Direct initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="copy_initialization.html" title="cpp/language/copy initialization">Copy initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="list_initialization.html" title="cpp/language/list initialization">List initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="aggregate_initialization.html" title="cpp/language/aggregate initialization">Aggregate initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="reference_initialization.html" title="cpp/language/reference initialization">Reference initialization</a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> <a href="initialization.html#Non-local_variables" title="cpp/language/initialization"> Static initialization </a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="zero_initialization.html" title="cpp/language/zero initialization">Zero initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="constant_initialization.html" title="cpp/language/constant initialization">Constant initialization</a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> <a href="initialization.html#Non-local_variables" title="cpp/language/initialization"> Dynamic non-local initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="initialization.html#Non-local_variables" title="cpp/language/initialization"> Ordered dynamic initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="initialization.html#Non-local_variables" title="cpp/language/initialization">Unordered dynamic initialization</a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Class member initialization </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="constructor.html" title="cpp/language/initializer list">Member initializer list</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="data_members.html#Member_initialization" title="cpp/language/data members">in-class <i>brace-or-equal</i> initializer</a>
</td></tr>
</table></div>
</div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
</div>
<p>This is the initialization performed when a variable is constructed with no initializer.
</p>
<table id="toc" class="toc"><tr><td>
<div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="default_initialization.html#Syntax"><span class="tocnumber">1</span> <span class="toctext">Syntax</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="default_initialization.html#Explanation"><span class="tocnumber">2</span> <span class="toctext">Explanation</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="default_initialization.html#Notes"><span class="tocnumber">3</span> <span class="toctext">Notes</span></a></li>
<li class="toclevel-1 tocsection-4"><a href="default_initialization.html#Example"><span class="tocnumber">4</span> <span class="toctext">Example</span></a></li>
<li class="toclevel-1 tocsection-5"><a href="default_initialization.html#See_also"><span class="tocnumber">5</span> <span class="toctext">See also</span></a></li>
</ul>
</td></tr></table>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Syntax">edit</a>]</span> <span class="mw-headline" id="Syntax">Syntax</span>
</h3>
<table class="t-sdsc-begin">

<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <span class="t-spar">T</span> <span class="t-spar">object</span> <code><b>;</b></code>
</td>
<td> (1)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
<tr class="t-sdsc">
<td> <code><b>new </b></code> <span class="t-spar">T</span> <code><b>;</b></code>
<p><code><b>new </b></code> <span class="t-spar">T</span> <code><b>(</b></code> <code><b>)</b></code> <code><b>;</b></code> <span class="t-mark">(until c++03)</span>
</p>
</td>
<td> (2)
</td>
<td class="t-sdsc-nopad">
</td>
</tr>



<tr>
<td colspan="10" class="t-sdsc-sep">
</td>
</tr>
</table>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Explanation">edit</a>]</span> <span class="mw-headline" id="Explanation">Explanation</span>
</h3>
<p>Default initialization is performed in three situations:
</p>
<div class="t-li1">
<span class="t-li">1)</span> when a variable with automatic, static, or thread-local <a href="storage_duration.html" title="cpp/language/storage duration">storage duration</a> is declared with no initializer.</div>
<div class="t-li1">
<span class="t-li">2)</span> when an object with dynamic storage duration is created by a <a href="new.html" title="cpp/language/new">new-expression</a> with no initializer <span class="t-rev-inl t-until-cxx03"><span>or when an object is created by a new-expression with the initializer consisting of an empty pair of parentheses</span> <span><span class="t-mark-rev t-until-cxx11">(until C++03)</span></span></span>.</div>
<div class="t-li1">
<span class="t-li">3)</span> when a base class or a non-static data member is not mentioned in a constructor <a href="constructor.html" title="cpp/language/initializer list">initializer list</a> and that constructor is called.</div>
<p>The effects of default initialization are:
</p>
<ul>
<li> If <code>T</code> is a <span class="t-rev-inl t-until-cxx11"><span>non-POD</span> <span><span class="t-mark-rev t-until-cxx11">(until C++11)</span></span></span> class type, the constructors are considered and subjected to <a href="overload_resolution.html" title="cpp/language/overload resolution">overload resolution</a> against the empty argument list. The constructor selected (which is one of the <a href="default_constructor.html" title="cpp/language/default constructor">default constructors</a>) is called to provide the initial value for the new object.
</li>
<li> If <code>T</code> is an array type, every element of the array is default-initialized.
</li>
<li> Otherwise, nothing is done: the objects with automatic storage duration (and their subobjects) are initialized to indeterminate values.
</li>
</ul>
 <table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<p>Only (possibly cv-qualified) non-POD class types (or arrays thereof) with automatic storage duration were considered to be default-initialized when no initializer is used. Scalars and POD types with dynamic storage duration were considered to be not initialized (since C++11, this situation was reclassified as a form of default initialization).
</p>
</td>
<td><span class="t-mark-rev t-until-cxx11">(until C++11)</span></td>
</tr>
<tr class="t-rev t-until-cxx03">
<td>
<p>Prior to C++03 (which introduced <a href="value_initialization.html" title="cpp/language/value initialization">value initialization</a>), the expression <span class="t-c"><span class="mw-geshi cpp source-cpp">new T<span class="br0">(</span><span class="br0">)</span></span></span> as well as a member initializer naming a base or a member with the initializer in the form of an empty pair of parentheses was classified as default initialization, but specified <a href="zero_initialization.html" title="cpp/language/zero initialization">zero initialization</a> for non-class types.
</p>
</td>
<td><span class="t-mark-rev t-until-cxx11">(until C++03)</span></td>
</tr>
</table>
<p><br>
</p>
 <table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<p>If <code>T</code> is a cv-qualified type, its cv-unqualified version is used for the purpose of default-initialization.
</p>
</td>
<td><span class="t-mark-rev t-until-cxx11">(until C++11)</span></td>
</tr>
</table>
 <table class="t-rev-begin">
<tr class="t-rev t-since-cxx14">
<td>
<p>Use of an indeterminate value obtained by default-initializing a non-class variable of any type is <a href="ub.html" title="cpp/language/ub">undefined behavior</a>, except in the following cases:
</p>
<ul>
<li> if the indeterminate value of unsigned narrow character type is assigned to another variable with unsigned narrow character type (the value of the variable becomes indeterminate, but the behavior is not undefined)
</li>
<li> if the indeterminate value of unsigned narrow character type is used to initialize another variable with unsigned narrow character type
</li>
<li> if the indeterminate value of unsigned narrow character type results from
</li>
</ul>
<dl><dd>
<ul>
<li> the second or third operand of a conditional expression
</li>
<li> the right operand of the comma operator
</li>
<li> the operand of a cast or conversion to an unsigned narrow character type
</li>
<li> a discarded-value expression
</li>
</ul>
</dd></dl>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="cpp source-cpp"><pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">bool</span> b<span class="br0">)</span>
<span class="br0">{</span>
    <span class="kw4">int</span> x<span class="sy4">;</span> <span class="co1">// value of x is indeterminate</span>
    <span class="kw4">int</span> y <span class="sy1">=</span> x<span class="sy4">;</span> <span class="co1">// undefined behavior</span>
    <span class="kw4">unsigned</span> <span class="kw4">char</span> c<span class="sy4">;</span> <span class="co1">// value of c is indeterminate</span>
    <span class="kw4">unsigned</span> <span class="kw4">char</span> d <span class="sy1">=</span> c<span class="sy4">;</span> <span class="co1">// OK, value of d is indeterminate</span>
    <span class="kw4">int</span> e <span class="sy1">=</span> d<span class="sy4">;</span> <span class="co1">// undefined behavior</span>
    <span class="kw1">return</span> b <span class="sy4">?</span> d <span class="sy4">:</span> <span class="nu0">0</span><span class="sy4">;</span> <span class="co1">// undefined behavior if b is true</span>
<span class="br0">}</span></pre></div></div>
</td>
<td><span class="t-mark-rev t-since-cxx14">(since C++14)</span></td>
</tr>
</table>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Notes">edit</a>]</span> <span class="mw-headline" id="Notes">Notes</span>
</h3>
<p>Default initialization of non-class variables with automatic and dynamic storage duration produces objects with indeterminate values (static and thread-local objects get <a href="zero_initialization.html" title="cpp/language/zero initialization">zero initialized</a>)
</p>
<p>If <code>T</code> is a const-qualified type, it must be a class type with a user-provided default constructor.
</p>
<p>Reference cannot be default-initialized.
</p>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Example">edit</a>]</span> <span class="mw-headline" id="Example">Example</span>
</h3>
<div class="t-example">
<div class="t-example-live-link"><div class="coliru-btn coliru-btn-run-init">Run this code</div></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="cpp source-cpp"><pre class="de1"><span class="co2">#include &lt;string&gt;</span>
<span class="kw1">struct</span> T1 <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">class</span> T2 <span class="br0">{</span> 
    <span class="kw4">int</span> mem<span class="sy4">;</span>
 <span class="kw1">public</span><span class="sy4">:</span>
    T2<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span> <span class="co1">// "mem" not in initializer list</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> n<span class="sy4">;</span> <span class="co1">// A two-phase initialization is done</span>
       <span class="co1">// In the first phase, zero initialization initializes n to zero</span>
       <span class="co1">// In the second phase, default initialization does nothing, leaving n being zero</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
    <span class="kw4">int</span> n<span class="sy4">;</span>            <span class="co1">// non-class: the value is indeterminate</span>
    <a href="../string/basic_string.html"><span class="kw1042">std::<span class="me2">string</span></span></a> s<span class="sy4">;</span>    <span class="co1">// calls default ctor, the value is "" (empty string)</span>
    <a href="../string/basic_string.html"><span class="kw1042">std::<span class="me2">string</span></span></a> a<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// calls default ctor, creates two empty strings</span>
<span class="co1">//    int&amp; r;         // error: default-initializing a reference</span>
<span class="co1">//    const int n;    // error: const non-class type</span>
<span class="co1">//    const T1 nd;    // error: const class type with implicit ctor</span>
    T1 t1<span class="sy4">;</span> <span class="co1">// ok, calls implicit default ctor</span>
    <span class="kw4">const</span> T2 t2<span class="sy4">;</span> <span class="co1">// ok, calls the user-provided default ctor </span>
                 <span class="co1">// t2.mem is default-initialized (to indeterminate value)</span>
<span class="br0">}</span></pre></div></div>
<p><br> 
</p>
</div>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: See also">edit</a>]</span> <span class="mw-headline" id="See_also">See also</span>
</h3>
<ul>
<li> <a href="direct_initialization.html" title="cpp/language/direct initialization">direct initialization</a>
</li>
<li> <a href="copy_initialization.html" title="cpp/language/copy initialization">copy initialization</a>
</li>
<li> <a href="list_initialization.html" title="cpp/language/list initialization">list initialization</a>
</li>
</ul>

<!-- 
NewPP limit report
Preprocessor visited node count: 964/1000000
Preprocessor generated node count: 3402/1000000
Post‐expand include size: 32358/2097152 bytes
Template argument size: 8683/2097152 bytes
Highest expansion depth: 13/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_en_:pcache:idhash:8863-0!*!0!!en!*!* and timestamp 20150428014609 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    Retrieved from "<a href="http%3A//en.cppreference.com/mwiki/index.php">http://en.cppreference.com/mwiki/index.php?title=cpp/language/default_initialization&amp;oldid=78061</a>"                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <div id="catlinks" class="catlinks catlinks-allhidden"></div>                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.ColiruCompiler"], null, true);
}</script>
<script src="../../../common/site_scripts.js"></script>

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 0.079 secs. -->
	</body>
<!-- Cached 20150428015054 -->
</html>
